#pragma once
#include <vector>

class SYSCONFIGPRODLLEXPORT CReadConfig
{
public:
	CReadConfig(void);
	~CReadConfig(void);

	//std::string ,std::wstring
	// ConfigFileName
	CString m_ConfigFileName;
	// SetConfigFileName
	void SetConfigFileName(const WSysConfigString& filename);
	// ReadConfigData
	bool ReadConfigData(const WSysConfigString& type,const WSysConfigString& param, WSysConfigString& value);
	bool ReadConfigData(const WSysConfigString& type,const WSysConfigString& param, SysConfigString& value);
	//bool ReadConfigData(const WSysConfigString& type,const WSysConfigString& param, int & value);
	//bool ReadConfigData(const WSysConfigString& type,const WSysConfigString& param, float& value);
	//bool ReadConfigData(const WSysConfigString& type,const WSysConfigString& param, CString& value);
	
	// WriteConfigData
	bool WriteConfigData(const WSysConfigString& type,const WSysConfigString& param, WSysConfigString& value);
	bool WriteConfigData(const WSysConfigString& type,const WSysConfigString& param, SysConfigString& value);
	//bool WriteConfigData(const WSysConfigString& type,const WSysConfigString& param, int & value);
	//bool WriteConfigData(const WSysConfigString& type,const WSysConfigString& param, float& value);
	//bool WriteConfigData(const WSysConfigString& type,const WSysConfigString& param, const CString& value);
	
	//CreateSavePath
	bool CreateSavePath(const SysConfigString& path);
	int split_string(const WSysConfigString& src, const WSysConfigString& token,  std::vector<WSysConfigString> &vec_result);
	
	
	//CString m_CfgFileName;
	void SetConfigFileName(const CString& filename);
	//CString
	// ReadConfigData
	bool ReadConfigData(const CString& type,const CString& param, CString& value);
	bool ReadConfigData(const CString& type,const CString& param, int & value);
	bool ReadConfigData(const CString& type,const CString& param, float& value);
	
	// WriteConfigData
	bool WriteConfigData(const CString& type,const CString& param, CString& value);
	bool WriteConfigData(const CString& type,const CString& param, int & value);
	bool WriteConfigData(const CString& type,const CString& param, float& value);


};
